第一次參加,感覺非常緊張。
目前購買了六角學院的課程正在努力吸收,希望用鐵人賽記錄自己每天的練習。
現在的學習進度到Bootstrap,就從Bootstrap開始記錄吧。
先畫出基本架構
	<div class="container">
        <div class="timeLine">
            <div class="row">
                <div class="col-sm-6"></div>
                <div class="col-sm-6"></div>
            </div>
        </div>
    </div>
把內容填入兩個<div class="col-sm-6"></div>內
	<div class="container">
        <div class="timeLine">
            <div class="row my-3">
						<!-- my-3 使上下有16px的推擠 -->
                <div class="col-sm-6">
                    <h3>這是標題</h3>
                    <p>略</p>
                </div>
                <div class="col-sm-6">
                    <div class="box"></div>
                </div>
            </div>
        </div>
    </div>
html,
body {
    background-color: #dad7cd;
    color: #344e41;
}
.box {
    height: 100px;
    background-color: #a3b18a;
    border: 1px solid #588157;
}
把row這段複製3次
<div class="container">
        <div class="timeLine">
            <div class="row my-3">
                <div class="col-sm-6">
                    <h3>這是標題</h3>
                    <p>略</p>
                </div>
                <div class="col-sm-6">
                    <div class="box"></div>
                </div>
            </div>
            <div class="row my-3">
                <div class="col-sm-6">
                    <h3>這是標題</h3>
                    <p>略</p>
                </div>
                <div class="col-sm-6">
                    <div class="box"></div>
                </div>
            </div>
            <div class="row my-3">
                <div class="col-sm-6">
                    <h3>這是標題</h3>
                    <p>略</p>
                </div>
                <div class="col-sm-6">
                    <div class="box"></div>
                </div>
            </div>
        </div>
    </div>
把想要反向排列的row區塊加上flex-row-reverse
<div class="row my-3 flex-row-reverse">
為了限制尺寸,多加一個sm會更完美
<div class="row my-3 flex-sm-row-reverse">
中間的線要使用偽元素,以下寫好後線會出現在左邊
.timeLine {
    position: relative;
    &::after {
        content:""; //偽元素的起手式,一定要有才會呈現
        position: absolute;
        top: 0;
        bottom: 0;
        width: 3px;
        background-color: #344e41;
    }
}
把線移到中間
.timeLine {
    position: relative;
    &::after {
        content:""; //偽元素的起手式,一定要有才會呈現
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;//會發現有點偏右,因為有3px的寬度
        width: 3px;
        transform: translateX(-50%);//把3px的寬度往左拉回一半中間
        background-color: #344e41;
    }
}
每個row增加一個叫timeLine-pointer的class用來製作圓點
<div class="row my-3 timeLine-pointer">
加上設定
.timeLine-pointer {
    position: relative;
    &::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 10px;
        height: 10px;
        transform: translateX(-50%);
        background-color: #344e41;
    }
}
把方塊改成中空的圓點
.timeLine-pointer {
    position: relative;
    &::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 10px;
        height: 10px;
        border-radius: 50%;//畫出圓形
        border:3px solid #344e41;
        transform: translateX(-50%);
        background-color: #dad7cd;//改變背景色
        z-index: 1;//把位置移到中間線上方
    }
}
為了避免變成一行後還會出現中間線,可以在特定寬度隱藏
576px來自bootstrap內的響應式斷點
//注意bootstrap是從手機板開始寫
@media (max-width: 576px) {//用min會變成576px以下才出現
    .timeLine::after {
        display: none;
    }
    .timeLine-pointer::after {
        display: none;
    }
}
之後自行美化即可
練習完成畫面
https://codepen.io/sesame55/pen/KKzZPMZ